#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <map>
#include <set>
#include <unordered_map>
#include <unordered_set>
#include <climits>
#include <iomanip>
#include <cmath>
#include <string>
#include <vector>
#define int long long
#define x first 
#define y second 
using namespace std;
const int N = 1e5 + 10;
int a[N];
void solve()
{
     int t , d , t1 , d1 , t2 , d2;
     cin >> t >> d >> t1 >> d1 >> t2 >> d2;
     if(d1 < d && d2 < d) 
     {
        cout << "-1" << endl;
        return;
     }
     if((d1 >= d && t1 <= t) || (d2 >= d && t2 <=t))
     {
        cout << "0" << endl;
        return;
     }
     if((d1 >= d && t1 > t) && (d2 >= d && t2 > t))
     {
        int p = min(t1 , t2);
        cout << p - t << endl;
        return;
     }
         if((d1 >= d && t1 > t) && (d2 < d))
     {
        cout << t1 - t << endl;
        return;
     }
         if((d2 >= d && t2 > t) && (d1 < d))
     {
        cout << t2 - t << endl;
        return;
     }
     if((t1 < t && d1 >=d) && (t2 > t))
     {
        cout << "0" << endl;
        return;
     }
       if((t2 < t && d2 >=d) && (t1 > t))
     {
        cout << "0" << endl;
        return;
     }
}
signed main()
{
    ios::sync_with_stdio(false);
    cin.tie(nullptr),cout.tie(nullptr);
    int t = 1;
    /*  int t;
     cin >> t; */
    while(t -- ) solve();
    return 0;
}